.class public Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;
.super Ljava/lang/Object;
.source "ScaleGestureDetector.java"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector$SimpleOnScaleGestureListener;,
        Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector$OnScaleGestureListener;
    }
.end annotation


# static fields
.field private static final PRESSURE_THRESHOLD:F = 0.67f

.field private static final TAG:Ljava/lang/String; = "ScaleGestureDetector"


# instance fields
.field private mActive0MostRecent:Z

.field private mActiveId0:I

.field private mActiveId1:I

.field private mCurrEvent:Landroid/view/MotionEvent;

.field private mCurrFingerDiffX:F

.field private mCurrFingerDiffY:F

.field private mCurrLen:F

.field private mCurrPressure:F

.field private mCurrSpanVector:Lcom/zuimeia/ui/touchdetector/Vector2D;

.field private mFocusX:F

.field private mFocusY:F

.field private mGestureInProgress:Z

.field private mInvalidGesture:Z

.field private final mListener:Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector$OnScaleGestureListener;

.field private mPrevEvent:Landroid/view/MotionEvent;

.field private mPrevFingerDiffX:F

.field private mPrevFingerDiffY:F

.field private mPrevLen:F

.field private mPrevPressure:F

.field private mScaleFactor:F

.field private mTimeDelta:J


# direct methods
.method public constructor <init>(Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector$OnScaleGestureListener;)V
    .registers 3
    .param p1, "listener"    # Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector$OnScaleGestureListener;

    .prologue
    .line 161
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 162
    iput-object p1, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mListener:Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector$OnScaleGestureListener;

    .line 163
    new-instance v0, Lcom/zuimeia/ui/touchdetector/Vector2D;

    invoke-direct {v0}, Lcom/zuimeia/ui/touchdetector/Vector2D;-><init>()V

    iput-object v0, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mCurrSpanVector:Lcom/zuimeia/ui/touchdetector/Vector2D;

    .line 164
    return-void
.end method

.method private findNewActiveIndex(Landroid/view/MotionEvent;II)I
    .registers 7
    .param p1, "ev"    # Landroid/view/MotionEvent;
    .param p2, "otherActiveId"    # I
    .param p3, "removedPointerIndex"    # I

    .prologue
    .line 327
    invoke-virtual {p1}, Landroid/view/MotionEvent;->getPointerCount()I

    move-result v2

    .line 330
    .local v2, "pointerCount":I
    invoke-virtual {p1, p2}, Landroid/view/MotionEvent;->findPointerIndex(I)I

    move-result v1

    .line 333
    .local v1, "otherActiveIndex":I
    const/4 v0, 0x0

    .local v0, "i":I
    :goto_9
    if-ge v0, v2, :cond_13

    .line 334
    if-eq v0, p3, :cond_10

    if-eq v0, v1, :cond_10

    .line 338
    .end local v0    # "i":I
    :goto_f
    return v0

    .line 333
    .restart local v0    # "i":I
    :cond_10
    add-int/lit8 v0, v0, 0x1

    goto :goto_9

    .line 338
    :cond_13
    const/4 v0, -0x1

    goto :goto_f
.end method

.method private reset()V
    .registers 5

    .prologue
    const/4 v3, 0x0

    const/4 v2, 0x0

    const/4 v1, -0x1

    .line 397
    iget-object v0, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mPrevEvent:Landroid/view/MotionEvent;

    if-eqz v0, :cond_e

    .line 398
    iget-object v0, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mPrevEvent:Landroid/view/MotionEvent;

    invoke-virtual {v0}, Landroid/view/MotionEvent;->recycle()V

    .line 399
    iput-object v3, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mPrevEvent:Landroid/view/MotionEvent;

    .line 401
    :cond_e
    iget-object v0, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mCurrEvent:Landroid/view/MotionEvent;

    if-eqz v0, :cond_19

    .line 402
    iget-object v0, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mCurrEvent:Landroid/view/MotionEvent;

    invoke-virtual {v0}, Landroid/view/MotionEvent;->recycle()V

    .line 403
    iput-object v3, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mCurrEvent:Landroid/view/MotionEvent;

    .line 405
    :cond_19
    iput-boolean v2, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mGestureInProgress:Z

    .line 406
    iput v1, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActiveId0:I

    .line 407
    iput v1, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActiveId1:I

    .line 408
    iput-boolean v2, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mInvalidGesture:Z

    .line 409
    return-void
.end method

.method private setContext(Landroid/view/View;Landroid/view/MotionEvent;)V
    .registers 29
    .param p1, "view"    # Landroid/view/View;
    .param p2, "curr"    # Landroid/view/MotionEvent;

    .prologue
    .line 342
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mCurrEvent:Landroid/view/MotionEvent;

    move-object/from16 v21, v0

    if-eqz v21, :cond_11

    .line 343
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mCurrEvent:Landroid/view/MotionEvent;

    move-object/from16 v21, v0

    invoke-virtual/range {v21 .. v21}, Landroid/view/MotionEvent;->recycle()V

    .line 345
    :cond_11
    invoke-static/range {p2 .. p2}, Landroid/view/MotionEvent;->obtain(Landroid/view/MotionEvent;)Landroid/view/MotionEvent;

    move-result-object v21

    move-object/from16 v0, v21

    move-object/from16 v1, p0

    iput-object v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mCurrEvent:Landroid/view/MotionEvent;

    .line 347
    const/high16 v21, -0x40800000

    move/from16 v0, v21

    move-object/from16 v1, p0

    iput v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mCurrLen:F

    .line 348
    const/high16 v21, -0x40800000

    move/from16 v0, v21

    move-object/from16 v1, p0

    iput v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mPrevLen:F

    .line 349
    const/high16 v21, -0x40800000

    move/from16 v0, v21

    move-object/from16 v1, p0

    iput v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mScaleFactor:F

    .line 350
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mCurrSpanVector:Lcom/zuimeia/ui/touchdetector/Vector2D;

    move-object/from16 v21, v0

    const/16 v22, 0x0

    const/16 v23, 0x0

    invoke-virtual/range {v21 .. v23}, Lcom/zuimeia/ui/touchdetector/Vector2D;->set(FF)V

    .line 352
    move-object/from16 v0, p0

    iget-object v12, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mPrevEvent:Landroid/view/MotionEvent;

    .line 354
    .local v12, "prev":Landroid/view/MotionEvent;
    move-object/from16 v0, p0

    iget v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActiveId0:I

    move/from16 v21, v0

    move/from16 v0, v21

    invoke-virtual {v12, v0}, Landroid/view/MotionEvent;->findPointerIndex(I)I

    move-result v13

    .line 355
    .local v13, "prevIndex0":I
    move-object/from16 v0, p0

    iget v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActiveId1:I

    move/from16 v21, v0

    move/from16 v0, v21

    invoke-virtual {v12, v0}, Landroid/view/MotionEvent;->findPointerIndex(I)I

    move-result v14

    .line 356
    .local v14, "prevIndex1":I
    move-object/from16 v0, p0

    iget v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActiveId0:I

    move/from16 v21, v0

    move-object/from16 v0, p2

    move/from16 v1, v21

    invoke-virtual {v0, v1}, Landroid/view/MotionEvent;->findPointerIndex(I)I

    move-result v4

    .line 357
    .local v4, "currIndex0":I
    move-object/from16 v0, p0

    iget v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActiveId1:I

    move/from16 v21, v0

    move-object/from16 v0, p2

    move/from16 v1, v21

    invoke-virtual {v0, v1}, Landroid/view/MotionEvent;->findPointerIndex(I)I

    move-result v5

    .line 359
    .local v5, "currIndex1":I
    if-ltz v13, :cond_80

    if-ltz v14, :cond_80

    if-ltz v4, :cond_80

    if-gez v5, :cond_ac

    .line 360
    :cond_80
    const/16 v21, 0x1

    move/from16 v0, v21

    move-object/from16 v1, p0

    iput-boolean v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mInvalidGesture:Z

    .line 361
    const-string v21, "ScaleGestureDetector"

    const-string v22, "Invalid MotionEvent stream detected."

    new-instance v23, Ljava/lang/Throwable;

    invoke-direct/range {v23 .. v23}, Ljava/lang/Throwable;-><init>()V

    invoke-static/range {v21 .. v23}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I

    .line 362
    move-object/from16 v0, p0

    iget-boolean v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mGestureInProgress:Z

    move/from16 v21, v0

    if-eqz v21, :cond_ab

    .line 363
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mListener:Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector$OnScaleGestureListener;

    move-object/from16 v21, v0

    move-object/from16 v0, v21

    move-object/from16 v1, p1

    move-object/from16 v2, p0

    invoke-interface {v0, v1, v2}, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector$OnScaleGestureListener;->onScaleEnd(Landroid/view/View;Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;)V

    .line 394
    :cond_ab
    :goto_ab
    return-void

    .line 368
    :cond_ac
    invoke-virtual {v12, v13}, Landroid/view/MotionEvent;->getX(I)F

    move-result v17

    .line 369
    .local v17, "px0":F
    invoke-virtual {v12, v13}, Landroid/view/MotionEvent;->getY(I)F

    move-result v19

    .line 370
    .local v19, "py0":F
    invoke-virtual {v12, v14}, Landroid/view/MotionEvent;->getX(I)F

    move-result v18

    .line 371
    .local v18, "px1":F
    invoke-virtual {v12, v14}, Landroid/view/MotionEvent;->getY(I)F

    move-result v20

    .line 372
    .local v20, "py1":F
    move-object/from16 v0, p2

    invoke-virtual {v0, v4}, Landroid/view/MotionEvent;->getX(I)F

    move-result v8

    .line 373
    .local v8, "cx0":F
    move-object/from16 v0, p2

    invoke-virtual {v0, v4}, Landroid/view/MotionEvent;->getY(I)F

    move-result v10

    .line 374
    .local v10, "cy0":F
    move-object/from16 v0, p2

    invoke-virtual {v0, v5}, Landroid/view/MotionEvent;->getX(I)F

    move-result v9

    .line 375
    .local v9, "cx1":F
    move-object/from16 v0, p2

    invoke-virtual {v0, v5}, Landroid/view/MotionEvent;->getY(I)F

    move-result v11

    .line 377
    .local v11, "cy1":F
    sub-float v15, v18, v17

    .line 378
    .local v15, "pvx":F
    sub-float v16, v20, v19

    .line 379
    .local v16, "pvy":F
    sub-float v6, v9, v8

    .line 380
    .local v6, "cvx":F
    sub-float v7, v11, v10

    .line 382
    .local v7, "cvy":F
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mCurrSpanVector:Lcom/zuimeia/ui/touchdetector/Vector2D;

    move-object/from16 v21, v0

    move-object/from16 v0, v21

    invoke-virtual {v0, v6, v7}, Lcom/zuimeia/ui/touchdetector/Vector2D;->set(FF)V

    .line 384
    move-object/from16 v0, p0

    iput v15, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mPrevFingerDiffX:F

    .line 385
    move/from16 v0, v16

    move-object/from16 v1, p0

    iput v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mPrevFingerDiffY:F

    .line 386
    move-object/from16 v0, p0

    iput v6, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mCurrFingerDiffX:F

    .line 387
    move-object/from16 v0, p0

    iput v7, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mCurrFingerDiffY:F

    .line 389
    const/high16 v21, 0x3f000000

    mul-float v21, v21, v6

    add-float v21, v21, v8

    move/from16 v0, v21

    move-object/from16 v1, p0

    iput v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mFocusX:F

    .line 390
    const/high16 v21, 0x3f000000

    mul-float v21, v21, v7

    add-float v21, v21, v10

    move/from16 v0, v21

    move-object/from16 v1, p0

    iput v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mFocusY:F

    .line 391
    invoke-virtual/range {p2 .. p2}, Landroid/view/MotionEvent;->getEventTime()J

    move-result-wide v22

    invoke-virtual {v12}, Landroid/view/MotionEvent;->getEventTime()J

    move-result-wide v24

    sub-long v22, v22, v24

    move-wide/from16 v0, v22

    move-object/from16 v2, p0

    iput-wide v0, v2, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mTimeDelta:J

    .line 392
    move-object/from16 v0, p2

    invoke-virtual {v0, v4}, Landroid/view/MotionEvent;->getPressure(I)F

    move-result v21

    move-object/from16 v0, p2

    invoke-virtual {v0, v5}, Landroid/view/MotionEvent;->getPressure(I)F

    move-result v22

    add-float v21, v21, v22

    move/from16 v0, v21

    move-object/from16 v1, p0

    iput v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mCurrPressure:F

    .line 393
    invoke-virtual {v12, v13}, Landroid/view/MotionEvent;->getPressure(I)F

    move-result v21

    invoke-virtual {v12, v14}, Landroid/view/MotionEvent;->getPressure(I)F

    move-result v22

    add-float v21, v21, v22

    move/from16 v0, v21

    move-object/from16 v1, p0

    iput v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mPrevPressure:F

    goto/16 :goto_ab
.end method


# virtual methods
.method public getCurrentSpan()F
    .registers 5

    .prologue
    .line 456
    iget v2, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mCurrLen:F

    const/high16 v3, -0x40800000

    cmpl-float v2, v2, v3

    if-nez v2, :cond_19

    .line 457
    iget v0, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mCurrFingerDiffX:F

    .line 458
    .local v0, "cvx":F
    iget v1, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mCurrFingerDiffY:F

    .line 459
    .local v1, "cvy":F
    mul-float v2, v0, v0

    mul-float v3, v1, v1

    add-float/2addr v2, v3

    float-to-double v2, v2

    invoke-static {v2, v3}, Ljava/lang/Math;->sqrt(D)D

    move-result-wide v2

    double-to-float v2, v2

    iput v2, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mCurrLen:F

    .line 461
    .end local v0    # "cvx":F
    .end local v1    # "cvy":F
    :cond_19
    iget v2, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mCurrLen:F

    return v2
.end method

.method public getCurrentSpanVector()Lcom/zuimeia/ui/touchdetector/Vector2D;
    .registers 2

    .prologue
    .line 465
    iget-object v0, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mCurrSpanVector:Lcom/zuimeia/ui/touchdetector/Vector2D;

    return-object v0
.end method

.method public getCurrentSpanX()F
    .registers 2

    .prologue
    .line 475
    iget v0, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mCurrFingerDiffX:F

    return v0
.end method

.method public getCurrentSpanY()F
    .registers 2

    .prologue
    .line 485
    iget v0, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mCurrFingerDiffY:F

    return v0
.end method

.method public getEventTime()J
    .registers 3

    .prologue
    .line 553
    iget-object v0, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mCurrEvent:Landroid/view/MotionEvent;

    invoke-virtual {v0}, Landroid/view/MotionEvent;->getEventTime()J

    move-result-wide v0

    return-wide v0
.end method

.method public getFocusX()F
    .registers 2

    .prologue
    .line 431
    iget v0, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mFocusX:F

    return v0
.end method

.method public getFocusY()F
    .registers 2

    .prologue
    .line 446
    iget v0, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mFocusY:F

    return v0
.end method

.method public getPreviousSpan()F
    .registers 5

    .prologue
    .line 495
    iget v2, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mPrevLen:F

    const/high16 v3, -0x40800000

    cmpl-float v2, v2, v3

    if-nez v2, :cond_19

    .line 496
    iget v0, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mPrevFingerDiffX:F

    .line 497
    .local v0, "pvx":F
    iget v1, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mPrevFingerDiffY:F

    .line 498
    .local v1, "pvy":F
    mul-float v2, v0, v0

    mul-float v3, v1, v1

    add-float/2addr v2, v3

    float-to-double v2, v2

    invoke-static {v2, v3}, Ljava/lang/Math;->sqrt(D)D

    move-result-wide v2

    double-to-float v2, v2

    iput v2, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mPrevLen:F

    .line 500
    .end local v0    # "pvx":F
    .end local v1    # "pvy":F
    :cond_19
    iget v2, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mPrevLen:F

    return v2
.end method

.method public getPreviousSpanX()F
    .registers 2

    .prologue
    .line 510
    iget v0, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mPrevFingerDiffX:F

    return v0
.end method

.method public getPreviousSpanY()F
    .registers 2

    .prologue
    .line 520
    iget v0, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mPrevFingerDiffY:F

    return v0
.end method

.method public getScaleFactor()F
    .registers 3

    .prologue
    .line 531
    iget v0, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mScaleFactor:F

    const/high16 v1, -0x40800000

    cmpl-float v0, v0, v1

    if-nez v0, :cond_13

    .line 532
    invoke-virtual {p0}, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->getCurrentSpan()F

    move-result v0

    invoke-virtual {p0}, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->getPreviousSpan()F

    move-result v1

    div-float/2addr v0, v1

    iput v0, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mScaleFactor:F

    .line 534
    :cond_13
    iget v0, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mScaleFactor:F

    return v0
.end method

.method public getTimeDelta()J
    .registers 3

    .prologue
    .line 544
    iget-wide v0, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mTimeDelta:J

    return-wide v0
.end method

.method public isInProgress()Z
    .registers 2

    .prologue
    .line 416
    iget-boolean v0, p0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mGestureInProgress:Z

    return v0
.end method

.method public onTouchEvent(Landroid/view/View;Landroid/view/MotionEvent;)Z
    .registers 23
    .param p1, "view"    # Landroid/view/View;
    .param p2, "event"    # Landroid/view/MotionEvent;

    .prologue
    .line 167
    invoke-virtual/range {p2 .. p2}, Landroid/view/MotionEvent;->getActionMasked()I

    move-result v4

    .line 169
    .local v4, "action":I
    if-nez v4, :cond_9

    .line 170
    invoke-direct/range {p0 .. p0}, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->reset()V

    .line 173
    :cond_9
    const/4 v9, 0x1

    .line 174
    .local v9, "handled":Z
    move-object/from16 v0, p0

    iget-boolean v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mInvalidGesture:Z

    move/from16 v18, v0

    if-eqz v18, :cond_14

    .line 175
    const/4 v9, 0x0

    .line 323
    :cond_13
    :goto_13
    return v9

    .line 176
    :cond_14
    move-object/from16 v0, p0

    iget-boolean v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mGestureInProgress:Z

    move/from16 v18, v0

    if-nez v18, :cond_c5

    .line 177
    packed-switch v4, :pswitch_data_31e

    :pswitch_1f
    goto :goto_13

    .line 179
    :pswitch_20
    const/16 v18, 0x0

    move-object/from16 v0, p2

    move/from16 v1, v18

    invoke-virtual {v0, v1}, Landroid/view/MotionEvent;->getPointerId(I)I

    move-result v18

    move/from16 v0, v18

    move-object/from16 v1, p0

    iput v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActiveId0:I

    .line 180
    const/16 v18, 0x1

    move/from16 v0, v18

    move-object/from16 v1, p0

    iput-boolean v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActive0MostRecent:Z

    goto :goto_13

    .line 185
    :pswitch_39
    invoke-direct/range {p0 .. p0}, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->reset()V

    goto :goto_13

    .line 190
    :pswitch_3d
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mPrevEvent:Landroid/view/MotionEvent;

    move-object/from16 v18, v0

    if-eqz v18, :cond_4e

    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mPrevEvent:Landroid/view/MotionEvent;

    move-object/from16 v18, v0

    invoke-virtual/range {v18 .. v18}, Landroid/view/MotionEvent;->recycle()V

    .line 191
    :cond_4e
    invoke-static/range {p2 .. p2}, Landroid/view/MotionEvent;->obtain(Landroid/view/MotionEvent;)Landroid/view/MotionEvent;

    move-result-object v18

    move-object/from16 v0, v18

    move-object/from16 v1, p0

    iput-object v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mPrevEvent:Landroid/view/MotionEvent;

    .line 192
    const-wide/16 v18, 0x0

    move-wide/from16 v0, v18

    move-object/from16 v2, p0

    iput-wide v0, v2, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mTimeDelta:J

    .line 194
    invoke-virtual/range {p2 .. p2}, Landroid/view/MotionEvent;->getActionIndex()I

    move-result v12

    .line 195
    .local v12, "index1":I
    move-object/from16 v0, p0

    iget v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActiveId0:I

    move/from16 v18, v0

    move-object/from16 v0, p2

    move/from16 v1, v18

    invoke-virtual {v0, v1}, Landroid/view/MotionEvent;->findPointerIndex(I)I

    move-result v11

    .line 196
    .local v11, "index0":I
    move-object/from16 v0, p2

    invoke-virtual {v0, v12}, Landroid/view/MotionEvent;->getPointerId(I)I

    move-result v18

    move/from16 v0, v18

    move-object/from16 v1, p0

    iput v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActiveId1:I

    .line 197
    if-ltz v11, :cond_82

    if-ne v11, v12, :cond_a2

    .line 199
    :cond_82
    move-object/from16 v0, p0

    iget v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActiveId1:I

    move/from16 v18, v0

    const/16 v19, -0x1

    move-object/from16 v0, p0

    move-object/from16 v1, p2

    move/from16 v2, v18

    move/from16 v3, v19

    invoke-direct {v0, v1, v2, v3}, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->findNewActiveIndex(Landroid/view/MotionEvent;II)I

    move-result v11

    .line 200
    move-object/from16 v0, p2

    invoke-virtual {v0, v11}, Landroid/view/MotionEvent;->getPointerId(I)I

    move-result v18

    move/from16 v0, v18

    move-object/from16 v1, p0

    iput v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActiveId0:I

    .line 202
    :cond_a2
    const/16 v18, 0x0

    move/from16 v0, v18

    move-object/from16 v1, p0

    iput-boolean v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActive0MostRecent:Z

    .line 204
    invoke-direct/range {p0 .. p2}, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->setContext(Landroid/view/View;Landroid/view/MotionEvent;)V

    .line 206
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mListener:Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector$OnScaleGestureListener;

    move-object/from16 v18, v0

    move-object/from16 v0, v18

    move-object/from16 v1, p1

    move-object/from16 v2, p0

    invoke-interface {v0, v1, v2}, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector$OnScaleGestureListener;->onScaleBegin(Landroid/view/View;Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;)Z

    move-result v18

    move/from16 v0, v18

    move-object/from16 v1, p0

    iput-boolean v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mGestureInProgress:Z

    goto/16 :goto_13

    .line 212
    .end local v11    # "index0":I
    .end local v12    # "index1":I
    :cond_c5
    packed-switch v4, :pswitch_data_32e

    :pswitch_c8
    goto/16 :goto_13

    .line 301
    :pswitch_ca
    invoke-direct/range {p0 .. p0}, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->reset()V

    goto/16 :goto_13

    .line 215
    :pswitch_cf
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mListener:Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector$OnScaleGestureListener;

    move-object/from16 v18, v0

    move-object/from16 v0, v18

    move-object/from16 v1, p1

    move-object/from16 v2, p0

    invoke-interface {v0, v1, v2}, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector$OnScaleGestureListener;->onScaleEnd(Landroid/view/View;Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;)V

    .line 216
    move-object/from16 v0, p0

    iget v14, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActiveId0:I

    .line 217
    .local v14, "oldActive0":I
    move-object/from16 v0, p0

    iget v15, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActiveId1:I

    .line 218
    .local v15, "oldActive1":I
    invoke-direct/range {p0 .. p0}, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->reset()V

    .line 220
    invoke-static/range {p2 .. p2}, Landroid/view/MotionEvent;->obtain(Landroid/view/MotionEvent;)Landroid/view/MotionEvent;

    move-result-object v18

    move-object/from16 v0, v18

    move-object/from16 v1, p0

    iput-object v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mPrevEvent:Landroid/view/MotionEvent;

    .line 221
    move-object/from16 v0, p0

    iget-boolean v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActive0MostRecent:Z

    move/from16 v18, v0

    if-eqz v18, :cond_176

    .end local v14    # "oldActive0":I
    :goto_fb
    move-object/from16 v0, p0

    iput v14, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActiveId0:I

    .line 222
    invoke-virtual/range {p2 .. p2}, Landroid/view/MotionEvent;->getActionIndex()I

    move-result v18

    move-object/from16 v0, p2

    move/from16 v1, v18

    invoke-virtual {v0, v1}, Landroid/view/MotionEvent;->getPointerId(I)I

    move-result v18

    move/from16 v0, v18

    move-object/from16 v1, p0

    iput v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActiveId1:I

    .line 223
    const/16 v18, 0x0

    move/from16 v0, v18

    move-object/from16 v1, p0

    iput-boolean v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActive0MostRecent:Z

    .line 225
    move-object/from16 v0, p0

    iget v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActiveId0:I

    move/from16 v18, v0

    move-object/from16 v0, p2

    move/from16 v1, v18

    invoke-virtual {v0, v1}, Landroid/view/MotionEvent;->findPointerIndex(I)I

    move-result v11

    .line 226
    .restart local v11    # "index0":I
    if-ltz v11, :cond_13b

    move-object/from16 v0, p0

    iget v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActiveId0:I

    move/from16 v18, v0

    move-object/from16 v0, p0

    iget v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActiveId1:I

    move/from16 v19, v0

    move/from16 v0, v18

    move/from16 v1, v19

    if-ne v0, v1, :cond_15b

    .line 228
    :cond_13b
    move-object/from16 v0, p0

    iget v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActiveId1:I

    move/from16 v18, v0

    const/16 v19, -0x1

    move-object/from16 v0, p0

    move-object/from16 v1, p2

    move/from16 v2, v18

    move/from16 v3, v19

    invoke-direct {v0, v1, v2, v3}, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->findNewActiveIndex(Landroid/view/MotionEvent;II)I

    move-result v11

    .line 229
    move-object/from16 v0, p2

    invoke-virtual {v0, v11}, Landroid/view/MotionEvent;->getPointerId(I)I

    move-result v18

    move/from16 v0, v18

    move-object/from16 v1, p0

    iput v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActiveId0:I

    .line 232
    :cond_15b
    invoke-direct/range {p0 .. p2}, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->setContext(Landroid/view/View;Landroid/view/MotionEvent;)V

    .line 234
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mListener:Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector$OnScaleGestureListener;

    move-object/from16 v18, v0

    move-object/from16 v0, v18

    move-object/from16 v1, p1

    move-object/from16 v2, p0

    invoke-interface {v0, v1, v2}, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector$OnScaleGestureListener;->onScaleBegin(Landroid/view/View;Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;)Z

    move-result v18

    move/from16 v0, v18

    move-object/from16 v1, p0

    iput-boolean v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mGestureInProgress:Z

    goto/16 :goto_13

    .end local v11    # "index0":I
    .restart local v14    # "oldActive0":I
    :cond_176
    move v14, v15

    .line 221
    goto :goto_fb

    .line 239
    .end local v14    # "oldActive0":I
    .end local v15    # "oldActive1":I
    :pswitch_178
    invoke-virtual/range {p2 .. p2}, Landroid/view/MotionEvent;->getPointerCount()I

    move-result v16

    .line 240
    .local v16, "pointerCount":I
    invoke-virtual/range {p2 .. p2}, Landroid/view/MotionEvent;->getActionIndex()I

    move-result v6

    .line 241
    .local v6, "actionIndex":I
    move-object/from16 v0, p2

    invoke-virtual {v0, v6}, Landroid/view/MotionEvent;->getPointerId(I)I

    move-result v5

    .line 243
    .local v5, "actionId":I
    const/4 v8, 0x0

    .line 244
    .local v8, "gestureEnded":Z
    const/16 v18, 0x2

    move/from16 v0, v16

    move/from16 v1, v18

    if-le v0, v1, :cond_2c1

    .line 245
    move-object/from16 v0, p0

    iget v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActiveId0:I

    move/from16 v18, v0

    move/from16 v0, v18

    if-ne v5, v0, :cond_25a

    .line 246
    move-object/from16 v0, p0

    iget v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActiveId1:I

    move/from16 v18, v0

    move-object/from16 v0, p0

    move-object/from16 v1, p2

    move/from16 v2, v18

    invoke-direct {v0, v1, v2, v6}, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->findNewActiveIndex(Landroid/view/MotionEvent;II)I

    move-result v13

    .line 247
    .local v13, "newIndex":I
    if-ltz v13, :cond_258

    .line 248
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mListener:Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector$OnScaleGestureListener;

    move-object/from16 v18, v0

    move-object/from16 v0, v18

    move-object/from16 v1, p1

    move-object/from16 v2, p0

    invoke-interface {v0, v1, v2}, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector$OnScaleGestureListener;->onScaleEnd(Landroid/view/View;Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;)V

    .line 249
    move-object/from16 v0, p2

    invoke-virtual {v0, v13}, Landroid/view/MotionEvent;->getPointerId(I)I

    move-result v18

    move/from16 v0, v18

    move-object/from16 v1, p0

    iput v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActiveId0:I

    .line 250
    const/16 v18, 0x1

    move/from16 v0, v18

    move-object/from16 v1, p0

    iput-boolean v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActive0MostRecent:Z

    .line 251
    invoke-static/range {p2 .. p2}, Landroid/view/MotionEvent;->obtain(Landroid/view/MotionEvent;)Landroid/view/MotionEvent;

    move-result-object v18

    move-object/from16 v0, v18

    move-object/from16 v1, p0

    iput-object v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mPrevEvent:Landroid/view/MotionEvent;

    .line 252
    invoke-direct/range {p0 .. p2}, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->setContext(Landroid/view/View;Landroid/view/MotionEvent;)V

    .line 253
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mListener:Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector$OnScaleGestureListener;

    move-object/from16 v18, v0

    move-object/from16 v0, v18

    move-object/from16 v1, p1

    move-object/from16 v2, p0

    invoke-interface {v0, v1, v2}, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector$OnScaleGestureListener;->onScaleBegin(Landroid/view/View;Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;)Z

    move-result v18

    move/from16 v0, v18

    move-object/from16 v1, p0

    iput-boolean v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mGestureInProgress:Z

    .line 270
    .end local v13    # "newIndex":I
    :cond_1f1
    :goto_1f1
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mPrevEvent:Landroid/view/MotionEvent;

    move-object/from16 v18, v0

    invoke-virtual/range {v18 .. v18}, Landroid/view/MotionEvent;->recycle()V

    .line 271
    invoke-static/range {p2 .. p2}, Landroid/view/MotionEvent;->obtain(Landroid/view/MotionEvent;)Landroid/view/MotionEvent;

    move-result-object v18

    move-object/from16 v0, v18

    move-object/from16 v1, p0

    iput-object v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mPrevEvent:Landroid/view/MotionEvent;

    .line 272
    invoke-direct/range {p0 .. p2}, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->setContext(Landroid/view/View;Landroid/view/MotionEvent;)V

    .line 277
    :goto_207
    if-eqz v8, :cond_13

    .line 279
    invoke-direct/range {p0 .. p2}, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->setContext(Landroid/view/View;Landroid/view/MotionEvent;)V

    .line 282
    move-object/from16 v0, p0

    iget v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActiveId0:I

    move/from16 v18, v0

    move/from16 v0, v18

    if-ne v5, v0, :cond_2c4

    move-object/from16 v0, p0

    iget v7, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActiveId1:I

    .line 283
    .local v7, "activeId":I
    :goto_21a
    move-object/from16 v0, p2

    invoke-virtual {v0, v7}, Landroid/view/MotionEvent;->findPointerIndex(I)I

    move-result v10

    .line 284
    .local v10, "index":I
    move-object/from16 v0, p2

    invoke-virtual {v0, v10}, Landroid/view/MotionEvent;->getX(I)F

    move-result v18

    move/from16 v0, v18

    move-object/from16 v1, p0

    iput v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mFocusX:F

    .line 285
    move-object/from16 v0, p2

    invoke-virtual {v0, v10}, Landroid/view/MotionEvent;->getY(I)F

    move-result v18

    move/from16 v0, v18

    move-object/from16 v1, p0

    iput v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mFocusY:F

    .line 287
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mListener:Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector$OnScaleGestureListener;

    move-object/from16 v18, v0

    move-object/from16 v0, v18

    move-object/from16 v1, p1

    move-object/from16 v2, p0

    invoke-interface {v0, v1, v2}, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector$OnScaleGestureListener;->onScaleEnd(Landroid/view/View;Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;)V

    .line 288
    invoke-direct/range {p0 .. p0}, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->reset()V

    .line 289
    move-object/from16 v0, p0

    iput v7, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActiveId0:I

    .line 290
    const/16 v18, 0x1

    move/from16 v0, v18

    move-object/from16 v1, p0

    iput-boolean v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActive0MostRecent:Z

    goto/16 :goto_13

    .line 255
    .end local v7    # "activeId":I
    .end local v10    # "index":I
    .restart local v13    # "newIndex":I
    :cond_258
    const/4 v8, 0x1

    goto :goto_1f1

    .line 257
    .end local v13    # "newIndex":I
    :cond_25a
    move-object/from16 v0, p0

    iget v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActiveId1:I

    move/from16 v18, v0

    move/from16 v0, v18

    if-ne v5, v0, :cond_1f1

    .line 258
    move-object/from16 v0, p0

    iget v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActiveId0:I

    move/from16 v18, v0

    move-object/from16 v0, p0

    move-object/from16 v1, p2

    move/from16 v2, v18

    invoke-direct {v0, v1, v2, v6}, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->findNewActiveIndex(Landroid/view/MotionEvent;II)I

    move-result v13

    .line 259
    .restart local v13    # "newIndex":I
    if-ltz v13, :cond_2be

    .line 260
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mListener:Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector$OnScaleGestureListener;

    move-object/from16 v18, v0

    move-object/from16 v0, v18

    move-object/from16 v1, p1

    move-object/from16 v2, p0

    invoke-interface {v0, v1, v2}, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector$OnScaleGestureListener;->onScaleEnd(Landroid/view/View;Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;)V

    .line 261
    move-object/from16 v0, p2

    invoke-virtual {v0, v13}, Landroid/view/MotionEvent;->getPointerId(I)I

    move-result v18

    move/from16 v0, v18

    move-object/from16 v1, p0

    iput v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActiveId1:I

    .line 262
    const/16 v18, 0x0

    move/from16 v0, v18

    move-object/from16 v1, p0

    iput-boolean v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActive0MostRecent:Z

    .line 263
    invoke-static/range {p2 .. p2}, Landroid/view/MotionEvent;->obtain(Landroid/view/MotionEvent;)Landroid/view/MotionEvent;

    move-result-object v18

    move-object/from16 v0, v18

    move-object/from16 v1, p0

    iput-object v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mPrevEvent:Landroid/view/MotionEvent;

    .line 264
    invoke-direct/range {p0 .. p2}, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->setContext(Landroid/view/View;Landroid/view/MotionEvent;)V

    .line 265
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mListener:Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector$OnScaleGestureListener;

    move-object/from16 v18, v0

    move-object/from16 v0, v18

    move-object/from16 v1, p1

    move-object/from16 v2, p0

    invoke-interface {v0, v1, v2}, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector$OnScaleGestureListener;->onScaleBegin(Landroid/view/View;Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;)Z

    move-result v18

    move/from16 v0, v18

    move-object/from16 v1, p0

    iput-boolean v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mGestureInProgress:Z

    goto/16 :goto_1f1

    .line 267
    :cond_2be
    const/4 v8, 0x1

    goto/16 :goto_1f1

    .line 274
    .end local v13    # "newIndex":I
    :cond_2c1
    const/4 v8, 0x1

    goto/16 :goto_207

    .line 282
    :cond_2c4
    move-object/from16 v0, p0

    iget v7, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mActiveId0:I

    goto/16 :goto_21a

    .line 296
    .end local v5    # "actionId":I
    .end local v6    # "actionIndex":I
    .end local v8    # "gestureEnded":Z
    .end local v16    # "pointerCount":I
    :pswitch_2ca
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mListener:Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector$OnScaleGestureListener;

    move-object/from16 v18, v0

    move-object/from16 v0, v18

    move-object/from16 v1, p1

    move-object/from16 v2, p0

    invoke-interface {v0, v1, v2}, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector$OnScaleGestureListener;->onScaleEnd(Landroid/view/View;Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;)V

    .line 297
    invoke-direct/range {p0 .. p0}, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->reset()V

    goto/16 :goto_13

    .line 305
    :pswitch_2de
    invoke-direct/range {p0 .. p2}, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->setContext(Landroid/view/View;Landroid/view/MotionEvent;)V

    .line 310
    move-object/from16 v0, p0

    iget v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mCurrPressure:F

    move/from16 v18, v0

    move-object/from16 v0, p0

    iget v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mPrevPressure:F

    move/from16 v19, v0

    div-float v18, v18, v19

    const v19, 0x3f2b851f

    cmpl-float v18, v18, v19

    if-lez v18, :cond_13

    .line 311
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mListener:Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector$OnScaleGestureListener;

    move-object/from16 v18, v0

    move-object/from16 v0, v18

    move-object/from16 v1, p1

    move-object/from16 v2, p0

    invoke-interface {v0, v1, v2}, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector$OnScaleGestureListener;->onScale(Landroid/view/View;Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;)Z

    move-result v17

    .line 313
    .local v17, "updatePrevious":Z
    if-eqz v17, :cond_13

    .line 314
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mPrevEvent:Landroid/view/MotionEvent;

    move-object/from16 v18, v0

    invoke-virtual/range {v18 .. v18}, Landroid/view/MotionEvent;->recycle()V

    .line 315
    invoke-static/range {p2 .. p2}, Landroid/view/MotionEvent;->obtain(Landroid/view/MotionEvent;)Landroid/view/MotionEvent;

    move-result-object v18

    move-object/from16 v0, v18

    move-object/from16 v1, p0

    iput-object v0, v1, Lcom/zuimeia/ui/touchdetector/ScaleGestureDetector;->mPrevEvent:Landroid/view/MotionEvent;

    goto/16 :goto_13

    .line 177
    nop

    :pswitch_data_31e
    .packed-switch 0x0
        :pswitch_20
        :pswitch_39
        :pswitch_1f
        :pswitch_1f
        :pswitch_1f
        :pswitch_3d
    .end packed-switch

    .line 212
    :pswitch_data_32e
    .packed-switch 0x1
        :pswitch_ca
        :pswitch_2de
        :pswitch_2ca
        :pswitch_c8
        :pswitch_cf
        :pswitch_178
    .end packed-switch
.end method
